package ar.uade.distribuidas.tpo.dba.servicio;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

import ar.uade.distribuidas.tpo.base.dominiodto.ClienteDTO;
import ar.uade.distribuidas.tpo.base.dominiodto.ConsumidorFinalDTO;
import ar.uade.distribuidas.tpo.base.dominiodto.EmpresaDTO;
import ar.uade.distribuidas.tpo.base.remoto.IGestionCliente;
import ar.uade.distribuidas.tpo.dba.dao.ClienteDAO;
import ar.uade.distribuidas.tpo.dba.dominio.Cliente;
import ar.uade.distribuidas.tpo.dba.dominio.ConsumidorFinal;
import ar.uade.distribuidas.tpo.dba.dominio.Empresa;

public class GestionCliente extends UnicastRemoteObject implements IGestionCliente{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private ClienteDAO cDAO;

	public GestionCliente() throws RemoteException {
		super();
		this.cDAO = ClienteDAO.getInstance();
	}
	

	@Override
	public void altaEmpresa(EmpresaDTO eDTO) throws RemoteException {
		Empresa e = new Empresa(eDTO.getCuil(), eDTO.getRazonSocial());
		cDAO.persist(e);
		
	}

	@Override
	public void altaConsumidorFinal(ConsumidorFinalDTO cFinalDTO)
			throws RemoteException {
		ConsumidorFinal cf = new ConsumidorFinal(cFinalDTO.getCuil(), cFinalDTO.getNombre());
		cDAO.persist(cf);
		
	}



	@Override
	public void bajaCliente(ClienteDTO cDTO) throws RemoteException {
		Cliente c = (Cliente) cDAO.getSession().get(Cliente.class, cDTO.getCuil());
		cDAO.getSession().delete(c);
	}



	@Override
	public void modificarCliente(ClienteDTO cuil) throws RemoteException {
		// TODO Auto-generated method stub
		
	}


	public ClienteDAO gethDAO() {
		return cDAO;
	}

	public void sethDAO(ClienteDAO hDAO) {
		this.cDAO = hDAO;
	}
}
